A system for storing software comprises an online software repository hosting code for software developers. The online software repository assists with project sharing, collaboration, version control, etc. As the system is used by an increasingly large number of software developers, the system may add a plurality of additional online software repository servers to distribute the load. When a developer desires to communicate with the online software repository (e.g., read data, write data, perform system commands, etc.), the developer system needs to determine the most appropriate way to communicate with the plurality of servers.